package cn.itcast.crm.dao;

import cn.itcast.crm.domain.Customer;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface CustomerRepository extends JpaRepository<Customer, Integer> {
    //获取没有关联定区的客户
    public List<Customer> findByFixedAreaIdIsNull();

    //获取关联某个定区的客户
    public List<Customer> findByFixedAreaId(String fixedAreaId);

    //改变关联的状态
    //ids  客户id列表
    //fid  定区id

    @Query("update Customer set fixedAreaId =:fid where id  in :ids")
    @Modifying   //不保留sql语句
    public void updateFixedAreaId(

            @Param("fid") String fixedAreaId, @Param("ids") List<Integer> id);

    //取消与某个定区关联的所有的客户

    /**
     *  @Query
     * 在存储库方法上直接声明查找查询的注释
     * @param fid
     */
    @Query("update  Customer set fiedAredId =null where id in :ids")
    @Modifying
    void clearAssociated(@Param("ids") String fid);

   /* @Query("update Customer set fixedAreaId = null where fixedAreaId = ?")
    @Modifying
    public void clearFixedAreaId(String fixedAreaId);*/

    /**
     * 根据电话查询客户信息
     *
     */
    Customer findByTelephone(String telephone);

    /**
     * 激活客户
     * 根据id，来修改的邮箱的状态值
     *
     */
    @Query("update Customer set type =1 where id=:ids")
    @Modifying
    void updatetype (@Param("ids") Integer id);
}
